package com.visitcqut.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

/**
 * @program: visitcqut
 * @description: Swagger在线文档配置类
 * @author: Marlowe
 * @create: 2020-12-06 20:03
 **/
@Configuration
@EnableSwagger2
public class SwaggerConfig {


    /**
     * 配置了Swagger的Docket的bean实例
     *
     * @return
     */
    @Bean
    public Docket docket(Environment environment) {
        // 设置要现实的swagger环境
        Profiles profiles = Profiles.of("dev", "test");

        // 获取项目的环境：
        boolean flag = environment.acceptsProfiles(profiles);

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("陈浩南")
                // enable是否启动Swagger，如果为false，则swagger不能在浏览器中访问
                .enable(flag)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.visitcqut.controller"))
                .build();
    }

    public ApiInfo apiInfo() {

        // 作者信息
        Contact contact = new Contact("Marlowe", "https://xmmarlowe.github.io", "marlowe246@qq.com");

        return new ApiInfo("Visit CQUT Swagger API Documentation",
                "Api Documentation",
                "v1.0", "urn:tos",
                contact, "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList());
    }
}
